package com.hibase.upms.service.organization;

import com.github.pagehelper.PageInfo;
import com.hibase.core.mybatis.service.BaseService;
import com.hibase.core.web.entity.OperationIdEntity;
import com.hibase.upms.entity.organization.MdsOrganization;
import com.hibase.upms.entity.organization.vo.MdsOrgSearchVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ChrisCui
 * @since 2019-04-17
 */
public interface IMdsOrganizationService extends BaseService<MdsOrganization> {

    /**
     * 新增组织
     * @param mdsOrg
     */
    void changeUser(MdsOrganization mdsOrg);

    /**
     * 组织状态更新（启用停用）
     * @param ids
     * @param recordStatus
     */
    void changeOrgStatus(List<String> ids, boolean recordStatus);

    /**
     * 查询列表
     *
     * @param searchVO
     * @return
     */
    PageInfo<MdsOrganization> selectList(MdsOrgSearchVO searchVO);

    /**
     * 更新全路径
     *
     * @param id
     */
    void updateFullIds(String id);

    /**
     * 刷新子节点的数量
     */
    void refreshChildNumber();

    /**
     * 查询子级列表
     *
     * @param id
     * @return
     */
    List<MdsOrganization> selectChildList(String id);

    List<MdsOrganization> recursionOrg(String id, List<MdsOrganization> list);

    List<MdsOrganization> recursionOrg(String id, List<MdsOrganization> list,List<MdsOrganization> result);

    PageInfo selectChildOrg(OperationIdEntity idEntity);
}
